The present invention relates to communicating information including data over one or more selected network channels, particularly where such a communication involves a mobile unit.
A number of communication networks are currently utilized in transmitting information including voice and data. Different network channels include CDPD (cellular digital packet data), satellite, SMR (specialized mobile radio), FM-subcarrier, DAB (digital audio broadcast), infrared and two-way messaging. The network channel that is accessed for information transfer depends on its availability in the geographic region of interest.
However, these numerous and quality-diverse communication links available for use in different geographic regions engender a new set of problems that must be faced. Chief among these relates to the reliability of the link or links that might be utilized for a predetermined communications application, particularly where the information transfer involves a mobile unit, whose position changes during the transfer. Unlike communication systems that typify the prior art in which the reliability or stability of a communication link is virtually taken for granted, the present invention involves network channels that, dependin n the conditions, can experience inconsistencies or discontinuities during the particular information transfer.
In connection with addressing these reliability issues, the inventors of the present invention have identified additional parameters as being germane to the process for selecting among different network channels for the transfer of information. These parameters include the bandwidth of the available channel and parameters related to the quality and/or quantity of the information or data being transferred, such as packet loss, packet latency and packet jitter. Bandwidth refers to the information transfer capacity of the channel and is definable in terms of a transfer rate, such as bits/second. Packet loss relates to the number of packets that are lost as a function of the number of packets that are received. Packet latency refers to the typical or average one-direction or end-to-end packet transfer time. Packet jitter refers to the variation in inter-packet receive times. Important additional factors or parameters to be taken into account as part of the network channel selection process relate to the cost of transfer including factors such as the network channel cost per packet and any channel setup cost. In view of these many parameters that can be considered when a channel is selected, the selection process for obtaining a desired or optimum network channel can be a complicated task.
The channel selection process is made more complicated and difficult when the transmitter and/or receiver of the transferred information is part of a mobile unit. In such a case, because of the movement of the mobile unit, such as a vehicle, a presently accessed network channel may no longer be available for use because of the new geographic position of the mobile unit. That is, the presently utilized network channel may not be available in the new location of the mobile unit. The network channel selection process is rendered even more complicated when, due to the different geographic position of the mobile unit, a previously unavailable channel is now available to the mobile unit. This previously unavailable channel may be more desirable for the information transfer that is currently under way.
In accordance with the present invention, a system is provided for selecting a network channel from among a number of available and acceptable channels. In addition to an initial selection of a network channel when the information transfer is started, the system is able to dynamically adapt to situations where the currently used network channel becomes unavailable or inappropriate and the transfer of information has not yet been completed. Relatedly, the system is able to switch network channels within the course of a particular information transfer or session when it is determined that a more advantageous channel is now available.
The system includes a number of communication units or devices for preparing the information, (e.g., data, a computer program or other software module) for transmission using the selected channel. Such preparation includes making the information compatible with the network that is to carry the information. The compatibility involves establishing the proper network protocol and appending the correct address associated with the network channel over which the information is to be transmitted.
The system further includes a network channel or link selector for automatically and dynamically selecting an appropriate network channel for transmission of information. The link selector communicates with at least one of the communication devices. The link selector conveys the identity of the selected network channel to this communication device so that it can prepare the correct network address that is to receive the information.
With respect to the channel selection process, the link selector obtains information transfer-related requirements for a particular application that is to be performed, e.g., involving the transfer of data. The application performance may involve one or more different uses of the application. These applications requirements are stored in an application requirements database. The application requirements typically include parameters such as bandwidth, destination of information to be transferred, economic factors including cost of transfer and parameters related to the quality of the packet transfer including packet loss, packet latency and packet jitter. The application requirements may also include a security level requirement. The application requirements also include a xe2x80x9cweighting vectorxe2x80x9d for each of the application parameters. The value of the weighting vector might change between or among uses of the particular application. The weighting vector acts as an indicator of the weight to be applied to the particular application parameter, in comparison with the weight that is to be given to the other application parameters. By way of example, a cost requirement may be given ten times the weight of a bandwidth requirement thereby indicating that, for this particular application, the cost of transmission is to be given significantly greater weight in deciding which network channel is to be selected than is the bandwidth parameter.
The link selector also accesses a communications link database that stores network channel parameters. The channel parameters essentially characterize or define the capabilities of the channel. The channel parameters, for each network channel to be analyzed, are checked or analyzed in the context of the particular application requirements, to determine which of the channels are available for possible use. This analysis is typically conducted using dynamically changing channel parameters, as well as static parameters. From the available channels that are found to be acceptable, one or more of them is selected for the particular application. In determining network channels that are deemed acceptable for the current transmission, each of the channel parameters is compared with its corresponding application requirement. If the particular channel parameter cannot satisfy its corresponding application requirement, the network channel under analysis is found to be unacceptable. This acceptability analysis is conducted for each of the available network channels. For each of such channels where one or more particular channel parameters was not able to meet or satisfy the corresponding application requirement, a determination is made that such a channel is not acceptable for the current information transfer. On the other hand, for each network channel that did satisfy all of the application requirements, they have met this stage of evaluation in connection with determining the selected channel. If it occurs that no acceptable channel is available, particularly where there is a time constraint within which the information transfer is expected to take place, recovery procedures are implemented including the ability of the user involved with the particular application to dynamically alter the application requirements in order that a channel can be selected that meets the user""s altered application requirements.
For each of these acceptable network channels, the next stage of analysis is conducted. In particular, a suitability value is found using each weighting vector and its associated channel parameter value that has a corresponding application requirement for the current information transfer application. For example, the particular application has a bandwidth requirement. The channel parameter value for bandwidth for a first acceptable network channel is obtained. The weighting vector for bandwidth is also obtained. The weighting vector is mathematically combined or otherwise utilized with the channel parameter value to calculate a suitability sub-value for the bandwidth parameter. These steps are followed for each of the application requirements in connection with the first acceptable network channel. The suitability sub-values obtained are combined or added to obtain a suitability value for this first acceptable network channel. A suitability value is determined for each of the other acceptable network channels that were found to meet the application requirements. Each of these determined suitability values is then compared with each other to select the network channel having the highest or desired suitability value.
In conjunction with the selection of the desired network channel, a key factor relates to the timing of the information transfer and when one or more channels are available for transmission. This factor is especially important in embodiments in which the source of the transmission or the receiver of the transmission is a mobile unit. In order to take into account the timing factor, the system further includes a link scheduler that operatively communicates with the link selector. The link scheduler is involved with a number of functions or operations related to when the particular transfer is to be made. When the particular information transfer is not to be conducted immediately or can be delayed, the link scheduler is useful in determining the identity or identities of network channels that will be available later in time. That is, due to the delay in transfer, the link scheduler is able to determine that one or more network channels will become available during one or more relevant time periods. This time-related information can be used in selecting a desired network channel for subsequent transmission of such delayed information. In that regard, the link scheduler works with the link selector by informing the link selector of the subsequent availability of such network channels. The link selector is then able to determine whether or not such a channel is acceptable and to determine its suitability value in order to compare it with other acceptable network channels. With regard to the determination made by the link scheduler as to the future availability of one or more available network channels, the link scheduler relies on the current geographic position of the transmitter or receiver of the information, whichever or both is applicable. The link scheduler also relies on future geographic position information, which can be found by the link scheduler using movement related data, such as the velocity of the mobile unit that includes the transmitter or receiver. The link scheduler is also responsible for changes in priority of information transmission. When there is a change in the application related to when it is to be sent, the link scheduler receives this update or priority change and notifies the link selector that, for this particular application, it is desired that this information transfer occur now. The link selector can then perform its functions in selecting a network channel for this transfer. Conversely, the link scheduler assists in deleting a scheduled transfer that the user or system decides should not be made. The link scheduler is also involved with alarm conditions. When it receives such a condition related to what information or data should be transmitted immediately, it advises the link selector so that it can regulate the sending of information associated with the alarm condition including the possibility of interrupting the transmitting or receiving associated with a current application. The link scheduler is also involved with checking as to whether or not a currently used network channel will go off-line or not be available to complete a particular transmission. If the link scheduler makes the determination that the currently used network channel will not be available for the complete transmission, it notifies the link selector so that it can prepare for switching to another network channel including one or more network channels that the link scheduler has indicated to the link selector will be available at the appropriate time.
In addition to the link scheduler, the link selector also receives information from a controller/monitor that receives data related to how well the information is being transferred at any instance in time, such as measured signal strength, measured packet loss, measured packet latency, and measured packet jitter. Using this data from the controller/monitor, the link selector might decide that a different network channel should be selected. In addition to data obtained by monitoring, dynamic costrelated data can also be obtained by requesting such information from network channel or carrier providers. These carrier providers can supply cost estimates based on factors such as the extent or volume of the information transfer.
Based on the foregoing summary, a number of salient features of the present invention are readily discerned. A system is disclosed for providing communication capabilities using a number of different available network channels. The system is able to select an acceptable network channel from a number of acceptable channels. The selection process uses previously identified and stored application requirements, weighting vectors and network channel parameters. One or more of these acceptable channels might include the capability of making more bandwidth available for the particular transfer thereby providing a further factor for consideration in deciding which of the acceptable channels should be selected. The timing of the transfer can be controlled to take advantage of a better network channel for transmission. The system allows for dynamic change of the network channel being utilized. A currently used network channel can be switched to another network channel because, for example, a different application with higher priority requires a different network channel. Relatedly, current operation of the selected network channel is monitored. Data from this monitoring is useful in deciding whether dynamic characteristics of the current channel have so changed to warrant the selection of another network channel.
Additional advantages of the present invention will become readily apparent from the following discussion, particularly when taken together with the accompanying.